package sk.xorty.service;

import sk.xorty.service.impl.EnglishSpellChecker;
import sk.xorty.service.impl.GermanSpellChecker;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;

public class SpellCheckerProvider implements Provider<SpellChecker> {

    private String spellKey;

    @Inject
    public SpellCheckerProvider(@Named("spellKey") String spellKey) {
        this.spellKey = spellKey;
    }

    @Override
    public SpellChecker get() {
        if ("EN".equalsIgnoreCase(spellKey)) {
            return new EnglishSpellChecker();
        }
        if ("DE".equalsIgnoreCase(spellKey)) {
            return new GermanSpellChecker();
        }

        // no spell checker
        return new SpellChecker() {
            @Override
            public String fixSpelling(String source) {
                return source;
            }
        };
    }

}
